import axios from 'axios'
import { Message } from 'element-ui';
import router from '../router'

//请求拦截器
axios.interceptors.request.use(config=>{
  if (window.sessionStorage.getItem('tokenStr')){
    config.headers['Authorization'] = window.sessionStorage.getItem('tokenStr')
  }
  return config;
}),error=>{
  console.log(error);
}

// 封装响应拦截器，统一处理浏览器错误提示
axios.interceptors.response.use(success=>{
  // success表示成功调用到后端接口
  //业务逻辑错误
  if(!null==success.status && success.status == 200){
    if (success.data.code ==500 || success.data.code ==401|| success.data.code ==403) {
      Message.error({message:success.data.message});
      return;
    }
    if (success.data.message) {
      Message.success({message:success.data.message})
    }
  }
  return success.data;

  // error表示没有访问到后端接口
},error=>{
  if (error.response.code == 504 || error.response.code ==404){
    Message.error({message:'服务器被吃了o(╯□╰)o'});
  }else if (error.response.code == 403) {
    Message.error({message:'权限不足o(╥﹏╥)o，请联系管理员！'});
  }else if (error.response.code == 401) {
    // 提示错误信息并跳转到登录页面
    Message.error({message:'尚未登录，请登录'});
    router.replace('/')
  }else {
    if (error.response.data.message){
      Message.error({message:error.response.data.message});
    } else {
      Message.error({message:'未知错误'});
    }
  }
  return;
});


// 传送json格式的post请求
export const postRequest= (url,params) =>{
  return axios({
    method:'post',
    url:url,
    data:params
  })
}


// 传送json格式的put请求
export const putRequest= (url,params) =>{
  return axios({
    method:'put',
    url:url,
    data:params
  })
}

// 传送json格式的get请求
export const getRequest= (url,params) =>{
  return axios({
    method:'get',
    url:url,
    data:params
  })
}

// 传送json格式的delete请求
export const deleteRequest= (url,params) =>{
  return axios({
    method:'delete',
    url:url,
    data:params
  })
}
